package com.portal.incurridos.persistence.wall;

import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * @author Alan D�vila
 * e-mail ustargab@gmail.com
 * date 11/11/2013 22:33:17
 */
@Entity
@Table(schema = "app", name = "project")
@SequenceGenerator(sequenceName = "app.project_project_seq", allocationSize = 1, name = "id_gen")
public class Project {

	/**
	 * Identifier of Project.
	 */
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "id_gen")
	private Integer project;
	/**
	 * Description of project.
	 */
	private String description;
	/**
	 * Walls associated of project.
	 */
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	@JoinColumn(name = "project")
	private List<Wall> walls;
	/**
	 * Owner of project.
	 */
	private String login;
	/**
	 * Create date of project.
	 */
	private Date createdate;
	/**
	 * Last date of modified.
	 */
	private Date lastdate;
	/**
	 * State of project.
	 */
	private Integer state;
	/**
	 * @return the project
	 */
	public final Integer getProject() {
		return project;
	}
	/**
	 * @param projectIn the project to set
	 */
	public final void setProject(final Integer projectIn) {
		this.project = projectIn;
	}
	/**
	 * @return the description
	 */
	public final String getDescription() {
		return description;
	}
	/**
	 * @param descriptionIn the description to set
	 */
	public final void setDescription(final String descriptionIn) {
		this.description = descriptionIn;
	}
	/**
	 * @return the walls
	 */
	public final List<Wall> getWalls() {
		return walls;
	}
	/**
	 * @param wallsIn the walls to set
	 */
	public final void setWalls(final List<Wall> wallsIn) {
		this.walls = wallsIn;
	}
	/**
	 * @return the login
	 */
	public final String getLogin() {
		return login;
	}
	/**
	 * @param loginIn the login to set
	 */
	public final void setLogin(final String loginIn) {
		this.login = loginIn;
	}
	/**
	 * @return the createdate
	 */
	public final Date getCreatedate() {
		return createdate;
	}
	/**
	 * @param createdateIn the createdate to set
	 */
	public final void setCreatedate(final Date createdateIn) {
		this.createdate = createdateIn;
	}
	/**
	 * @return the lastdate
	 */
	public final Date getLastdate() {
		return lastdate;
	}
	/**
	 * @param lastdateIn the lastdate to set
	 */
	public final void setLastdate(final Date lastdateIn) {
		this.lastdate = lastdateIn;
	}
	/**
	 * @return the state
	 */
	public final Integer getState() {
		return state;
	}
	/**
	 * @param stateIn the state to set
	 */
	public final void setState(final Integer stateIn) {
		this.state = stateIn;
	}

}
